Estoy tratando de mostrar el formulario de inicio de sesión solo a los visitantes y ocultarlo cuando el usuario inicia sesión. He visto una pregunta similar aquí pero no pude obtener la respuesta. En el código actual, aparece el formulario de inicio de sesión que se incluye en otra página y también un error "Índice indefinido: nombre de usuario". Entonces, ¿cómo puedo definirlo?
<?php session_start() ?> <!DOCTYPE html> <html> <head> <title>Home</title> <meta charset="utf-8"/> <link rel="stylesheet" href="IndexStyle.css"/> <meta name="viewport" content="width= device-width, intial-scale=1.0"> </head> <body class="body"> <header class="MainHeader"> <img src="images/header-image-5.jpg"> <nav><ul> <li class="active"><a href="index.php">Home</a></li> <li><a href="Product.php">Products</a></li> <li><a href="AboutUs.php">About Us</a></li> <li><a href="ContactUs.php">Contact Us</a></li> <div id="AdminP"> <li><a href="AdminPanel.php">Admin Panel</a></li> </div> </ul> </header> <div class="MainBody"> <p>This is Mainbody </p> </div> <aside class="SideBar"> <div class="login"> <?php if($_SESSION['UserName'] == "") { include 'Form.php'; } else { echo "Logged in"; } ?> </div> <p> </p> </aside> <Footer class="Footer"> <p>Copyrights reserved </p> </Footer> </body> </html>Debe verificar la sesión de manera correcta if($_SESSION['UserName'] == "") {
Puede usar isset y vacío para verificar la sesión.
session_start(); if(isset($_SESSION['UserName']) && !empty($_SESSION['UserName'])) { include 'Form.php'; } else { echo "Logged in"; }también puede usar array_key_exists en lugar de isset
session_start(); if(array_key_exists('UserName',$_SESSION) && !empty($_SESSION['UserName'])) { include 'Form.php'; }else{ echo "Logged in"; }Los métodos anteriores para (especialmente para claves de matriz) funcionan y también puede optar por
if (!isset($_SESSION['UserName']) || $_SESSION['UserName'] == '')prueba esto Estimado Cambia tu código php
<?php if(!(isset($_SESSION['UserName']) && $_SESSION['UserName'] != "")) { echo "Logged in"; } else { include 'form.php'; } ?><?php if(!isset($_SESSION['UserName']) && $_SESSION['UserName']== "") { include 'Form.php'; } else { echo "Logged in"; } ?>Espero que esto te ayudará